import axios from 'axios'

// Coze API 基础配置
const API_BASE_URL = 'https://api.coze.cn/v3'
const API_TOKEN = 'pat_yBfx62mfrOSkVwRyHJuZG1v5ofMpjrxNs2dhor6FaoE59c5jCAZtRaSpBVvp7mGG'
const BOT_ID = '7483005519943434255'

// 请求头配置
const headers = {
  'Authorization': `Bearer ${API_TOKEN}`,
  'Content-Type': 'application/json'
}

/**
 * 创建聊天会话并获取流式响应
 * @param {string} message - 用户发送的消息内容
 * @param {string|null} conversationId - 会话ID，用于继续之前的对话
 * @returns {Promise} - 返回包含流式响应的Promise对象
 */
export const createChatCompletion = async (message, conversationId = null) => {
  // 构建API请求URL，如果有conversationId则添加到查询参数中
  const url = `${API_BASE_URL}/chat${conversationId ? `?conversation_id=${conversationId}` : ''}`
  
  // 构建请求体数据
  const data = {
    bot_id: BOT_ID,
    user_id: '123456789', // 用户标识，可以根据实际需求修改
    stream: true, // 启用流式响应
    auto_save_history: true, // 自动保存对话历史
    additional_messages: [
      {
        role: 'user',
        content: message,
        content_type: 'text'
      }
    ]
  }

  try {
    // 发送POST请求并返回响应
    return await axios.post(url, data, {
      headers,
      responseType: 'text' // 设置响应类型为文本，用于处理流式数据
    })
  } catch (error) {
    // 处理请求错误
    console.error('API请求失败:', error)
    if (error.response) {
      throw new Error(`服务器响应错误: ${error.response.status} - ${error.response.data?.message || '未知错误'}`)
    } else if (error.request) {
      throw new Error('网络连接失败，请检查网络状态或API服务是否可用')
    } else {
      throw new Error(`请求配置错误: ${error.message}`)
    }
  }
}